/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistemadecompras.negocio;

import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import sistemadecompras.datos.BaseDeDatosDB;

/**
 *
 * @author May
 */
public class Producto {

    private int id_prod;
    private String producto;
    private int cantidad;
    private double precio;
    private int id_prov;

    public int getId_prov() {
        return id_prov;
    }

    public void setId_prov(int id_prov) {
        this.id_prov = id_prov;
    }

    public int getId_prod() {
        return id_prod;
    }

    public void setId_prod(int id_prod) {
        this.id_prod = id_prod;
    }

    public String getProducto() {
        return producto;
    }

    public void setProducto(String producto) {
        this.producto = producto;
    }

    public int getCantidad() {
        return cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

    public boolean grabar() {
        try {
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            productoDB.grabarProducto(this);
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, ex.getMessage());
            return false;
        }
    }

    public boolean modificar() {
        try {
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            productoDB.modificarProducto(this);
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, ex.getMessage());
            return false;
        }
    }
    
    public boolean modificarCant(int id, int cant) {
        try {
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            productoDB.modificarProductoR(id,cant);
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, ex.getMessage());
            return false;
        }
    }
    
    
    public boolean restarCantidad() {
        try {
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            productoDB.modificarProductoVenta(this);
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, ex.getMessage());
            return false;
        }
    }
    
    

    public boolean eliminar(int ide) {
        try {
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            productoDB.eliminarProducto(ide);
            return true;
        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, ex.getMessage());
            return false;
        }
    }

    public boolean buscar() {
        try {
            Producto aux;
            BaseDeDatosDB productoDB = new BaseDeDatosDB();
            aux = productoDB.buscarProducto(this.id_prod);
            setProducto(aux.getProducto());
            setCantidad(aux.getCantidad());
            setPrecio(aux.getPrecio());
            setId_prod(aux.getId_prod());
            return true;

        } catch (SQLException ex) {
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    
    public boolean comprobarCantidad(int num) {
        if ((this.cantidad-num)<0) {
            return false;
        } else {
            return true;
        }
    }
}
